\section{Introduction}
\label{sec:introduction}

Iterative development~\cite{Larman2003} is often adopted in modern software
projects~\cite{10.1109/MS.2012.74} as it allows for rapid validation of the
developed features at a finer granularity. In Model-Driven Engineering
(\textsc{Mde}), \emph{iterative modeling}~\cite{Konrad2007} is often witnessed
in model evolution.
% \cite{Meyers2011}. The problem in model-driven development (MDD) is the lack
% of support for iterative modeling.
During the development of a \textsc{Mde} project, given a fixed set of
requirements, the modeler typically produces a first model that satisfies an
initial subset of the requirements. Then at the following iteration, he either
produces a model that satisfies a larger subset of the requirements or revises
the model to more correctly satisfy the previous sub-set of requirement. The
model will therefore undergo several iterations until all requirements are
satisfied correctly.

The problem with this iterative modeling process is that there is no guarantee
that the model $M_{i+1}$ resulting after an iteration $i+1$ does not break
properties of the previous model $M_i$ that correctly satisfied requirements.
Therefore from a regression point of view, it is crucial that satisfied and
unchanged properties of an evolving model are preserved at each iteration.

In this paper we report on ongoing work for building a framework for iterative
development for Domain-Specific Languages (\textsc{Dsl}s). Given a metamodel for
describing behavioral models in the domain of interest and a set of
requirements, a modeler iteratively specifies models (metamodel instances) until
fulfilling those requirements. We aim at assisting the modeler in the iterative
process, by ensuring that each iteration actually preserves previously satisfied
properties. Our proposal to tackle this problem is based on
invariant preservation on Algebraic Petri Nets (\textsc{Apn}s). In previous work
we have presented a partial translation from StateCharts into
\textsc{Apn}s~\cite{Lucio2011}, meaning StateCharts can be used as a front
end for our approach. However, any language for which such a translation exists could be plugged into
our framework. We present in this paper some illustrated preliminary results
demonstrating our approach's feasibility.


% Iterative modeling is often adopted for behavioral models such as Statecharts
% or Petri net. Our current work attempts to set a basis for ensuring that
% invariant properties of behavioral models are preserved in the context of an
% iterative modeling process. In previous work~\cite{Lucio2011}, we have shown
% how Statecharts, a popular language to model the behavior of systems, is
% transformed to algebraic Petri nets (\textsc{Apn}s)~\cite{Rei91}, a
% well-formalized language, in order to preform analysis. In this paper, we
% focus on preservation of invariant properties in \textsc{Apn}s.

In \Sect\ref{sec:Running} we present a concrete example together with desirable
requirements that will be addressed along later iterations. This example starts
from a metamodel that is transformed into an \textsc{Apn} for performing the
necessary verifications. \Sect\ref{sec:Preservation} presents a formalisation of
\textsc{Apn}s and proves that the iterations actually preserve invariant
properties. Then in \Sect\ref{sec:Evolving}, we present an iterative modeling
process applied to our example and show how the initial requirements are
gradually and iteratively enforced. Finally, \Sect\ref{sec:DRW} discusses our
approach and related work, and \Sect\ref{sec:conclusion} concludes by presenting
our future work.